﻿using System;
namespace Kis.Xroad.Eu {
    
    
    [System.SerializableAttribute()]
    public partial class XsdAll {
        
        private string @__xsdStringNil;
        
        private global::Kis.Xroad.Eu.Gender @__xsdStringMinOccurs0;
        
        private string @__xsdStringNonNil;
        
        private System.DateTime? @__xsdDateTimeNil;
        
        private System.DateTime @__xsdDateTimeNonNil;
        
        private System.UInt16? @__xsdUnsignedIntNillable;
        
        private ushort @__xsdUnsignedIntNonNillable;
        
        private global::Kis.Xroad.Eu.PositiveCelcius @__degreesNonNillable;
        
        private global::Kis.Xroad.Eu.Gender @__gengerNil;
        
        public XsdAll() {
        }
        
        /// <summary>
        /// All parameters
        /// </summary>
        public XsdAll(string @xsdStringNil, global::Kis.Xroad.Eu.Gender @xsdStringMinOccurs0, string @xsdStringNonNil, System.DateTime? @xsdDateTimeNil, System.DateTime @xsdDateTimeNonNil, System.UInt16? @xsdUnsignedIntNillable, ushort @xsdUnsignedIntNonNillable, global::Kis.Xroad.Eu.PositiveCelcius @degreesNonNillable, global::Kis.Xroad.Eu.Gender @gengerNil) {
            this.@__xsdStringNil = @xsdStringNil;
            this.@__xsdStringMinOccurs0 = @xsdStringMinOccurs0;
            this.@__xsdStringNonNil = @xsdStringNonNil;
            this.@__xsdDateTimeNil = @xsdDateTimeNil;
            this.@__xsdDateTimeNonNil = @xsdDateTimeNonNil;
            this.@__xsdUnsignedIntNillable = @xsdUnsignedIntNillable;
            this.@__xsdUnsignedIntNonNillable = @xsdUnsignedIntNonNillable;
            this.@__degreesNonNillable = @degreesNonNillable;
            this.@__gengerNil = @gengerNil;
        }
        
        /// <summary>
        /// Required parameters
        /// </summary>
        public XsdAll(string @xsdStringNonNil, System.DateTime @xsdDateTimeNonNil, ushort @xsdUnsignedIntNonNillable, global::Kis.Xroad.Eu.PositiveCelcius @degreesNonNillable) {
            this.@__xsdStringNonNil = @xsdStringNonNil;
            this.@__xsdDateTimeNonNil = @xsdDateTimeNonNil;
            this.@__xsdUnsignedIntNonNillable = @xsdUnsignedIntNonNillable;
            this.@__degreesNonNillable = @degreesNonNillable;
        }
        
        /// <summary>
        /// Copy Constructor
        /// </summary>
        protected XsdAll(XsdAll @xsdAll) {
            this.@__xsdStringNil = @xsdAll.XsdStringNil;
            this.@__xsdStringMinOccurs0 = @xsdAll.XsdStringMinOccurs0;
            this.@__xsdStringNonNil = @xsdAll.XsdStringNonNil;
            this.@__xsdDateTimeNil = @xsdAll.XsdDateTimeNil;
            this.@__xsdDateTimeNonNil = @xsdAll.XsdDateTimeNonNil;
            this.@__xsdUnsignedIntNillable = @xsdAll.XsdUnsignedIntNillable;
            this.@__xsdUnsignedIntNonNillable = @xsdAll.XsdUnsignedIntNonNillable;
            this.@__degreesNonNillable = @xsdAll.DegreesNonNillable;
            this.@__gengerNil = @xsdAll.GengerNil;
        }
        
        public virtual string XsdStringNil {
            get {
                return this.@__xsdStringNil;
            }
            set {
                this.@__xsdStringNil = value;
            }
        }
        
        public virtual global::Kis.Xroad.Eu.Gender XsdStringMinOccurs0 {
            get {
                return this.@__xsdStringMinOccurs0;
            }
            set {
                this.@__xsdStringMinOccurs0 = value;
            }
        }
        
        public virtual string XsdStringNonNil {
            get {
                return this.@__xsdStringNonNil;
            }
            set {
                this.@__xsdStringNonNil = value;
            }
        }
        
        public virtual System.DateTime? XsdDateTimeNil {
            get {
                return this.@__xsdDateTimeNil;
            }
            set {
                this.@__xsdDateTimeNil = value;
            }
        }
        
        public virtual System.DateTime XsdDateTimeNonNil {
            get {
                return this.@__xsdDateTimeNonNil;
            }
            set {
                this.@__xsdDateTimeNonNil = value;
            }
        }
        
        public virtual System.UInt16? XsdUnsignedIntNillable {
            get {
                return this.@__xsdUnsignedIntNillable;
            }
            set {
                this.@__xsdUnsignedIntNillable = value;
            }
        }
        
        public virtual ushort XsdUnsignedIntNonNillable {
            get {
                return this.@__xsdUnsignedIntNonNillable;
            }
            set {
                this.@__xsdUnsignedIntNonNillable = value;
            }
        }
        
        public virtual global::Kis.Xroad.Eu.PositiveCelcius DegreesNonNillable {
            get {
                return this.@__degreesNonNillable;
            }
            set {
                this.@__degreesNonNillable = value;
            }
        }
        
        public virtual global::Kis.Xroad.Eu.Gender GengerNil {
            get {
                return this.@__gengerNil;
            }
            set {
                this.@__gengerNil = value;
            }
        }
    }
}
